Automatic Parallelization of Restricted C Programs using Pointer Analysis
نویسندگان
چکیده
This paper describes a restriction on pointer usage in C language for parallelism extraction by an automatic parallelizing compiler. By rewriting programs to satisfy the restriction, automatic parallelization using flow-sensitive, context-sensitive pointer analysis on an 8 cores SMP server achieved 3.80 times speedup for SPEC2000 art, 6.17 times speedup for SPEC2006 lbm and 5.14 times speedup for MediaBench mpeg2enc against the sequential execution, respectively.
منابع مشابه
Semantic Analysis for Parallelizing C
Automatic parallelization of C language programs is a diicult task due, for example, to side eeects within expressions and access to memory via pointers. We describe a method based on semantic analysis of the language, in order to detect parallelism in complex programs using pointer arithmetic. We deene semantic domains which respect the type system of the language, and use them to synthesize e...
متن کاملGeneralized Iteration Space 21 Dependence Analysis
A large body of literature has developed concerning the automatic parallelization of numerical programs, and a quite separate literature has developed concerning the parallelization of symbolic programs. Because many symbolic programs make heavy use of array data and iterative constructs, in addition to more \symbolic" language features like pointers and recursion, it is desirable to fuse these...
متن کاملData Flow Analysis of Recursive
Most imperative languages only ooer arrays as \\rst-class" data structures. Other data structures, especially recursive data structures such as trees, have to be manipulated using explicit control of memory, i.e., through pointers to explicitly allocated portions of memory. We believe that this severe limitation is mainly due to historical reasons, and this paper will try and demonstrate that m...
متن کاملDynamic Parallelization of Modi cations to Directed Acyclic Graphs
We describe an interprocedural technique, called dynamic resolution, for the automatic parallelization of procedures that destructively manipulate dynamic DAGs. Dynamic resolution dynamically detects shared data and correctly coordinates access to this data at run time. In pointer-unsafe languages (e.g., C), dynamic resolution requires programmer identi cation of acyclic data structures and the...
متن کاملSemantic Analysis of Straight Line C Code with Pointers
Automatic parallelization of C language programs is a subject rarely addressed: this can be explained by the diiculties inherent to the language, such as side eeects within expressions or access to memory via pointers. The method we describe here is based on a semantic analysis of programs. The goal is to detect parallelism in complex programs using pointer arithmetic, thanks to the type system...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008